Find the second smallest number in a listΒΆ
Find the second smallest number in a list.
def second_smallest(L):
if len(numbers) < 2:
return
if len(L) == 2 and L[0] == L[1]:
return
dup_items = set()
uniq_items = []
for x in L:
if x not in dup_items:
uniq_items.append(x)
dup_items.add(x)
uniq_items.sort()
return uniq_items[1]
# test
print(second_smallest([1, 2, -8, -2, 0, -2])) # -2
print(second_smallest([1, 1, 0, 0, 2, -2, -2])) # 0
print(second_smallest([1, 1, 1, 0, 0, 0, 2, -2, -2])) # 0
print(second_smallest([2,2])) # None
print(second_smallest([2])) # None